#pragma once

#include "Task.h"

#include <utility>

namespace threadpool {

    class PriorityTask : public Task {

    public:

        /**
          * @brief  根据指定的优先级和任务函数创建优先级任务
          * @note   None
          * @param  priority 优先级
          * @param  func     任务函数
          */
        explicit PriorityTask(int priority, std::function<void()> func) :
                Task(priority, std::move(func)) {}

        std::string getType() const override { return "PriorityTask"; }

    };

}